home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / gencodec / source / gencodecgui.c < prev    next >
C/C++ Source or Header  |  1999-01-01  |  5KB  |  233 lines

  1. #ifndef MAKE_ID
  2. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  3. #endif
  4.  
  5. /* Libraries */
  6. #include <libraries/mui.h>
  7. #include <libraries/gadtools.h> /* for Barlabel in MenuItem */
  8. #include <exec/memory.h>
  9.  
  10. /* Prototypes */
  11. #include <proto/muimaster.h>
  12. #include <proto/exec.h>
  13. #ifdef __GNUC__
  14. #include <proto/alib.h>
  15. #else
  16. #include <clib/alib_protos.h>
  17. #endif /* __GNUC__ */
  18.  
  19. #include "GenCodeCGUI.h"
  20.  
  21. struct ObjApp * CreateApp(void)
  22. {
  23.     struct ObjApp * ObjectApp;
  24.  
  25.     APTR    GROUP_ROOT_0, GR_Option, GR_Main, Space_1, obj_aux0, obj_aux1, Space_2;
  26.     APTR    Space_3, obj_aux2, obj_aux3, Space_4, GR_Register, GR_Buttons;
  27.  
  28.     if (!(ObjectApp = AllocVec(sizeof(struct ObjApp),MEMF_CLEAR)))
  29.         return(NULL);
  30.  
  31.     ObjectApp->STR_TX_Prg_Name = NULL;
  32.  
  33.     ObjectApp->STR_GR_Register[0] = "H-Header";
  34.     ObjectApp->STR_GR_Register[1] = "C-Header";
  35.     ObjectApp->STR_GR_Register[2] = "Main-Header";
  36.     ObjectApp->STR_GR_Register[3] = NULL;
  37.  
  38.     ObjectApp->TX_Prg_Name = TextObject,
  39.         MUIA_Background, MUII_TextBack,
  40.         MUIA_Frame, MUIV_Frame_Text,
  41.         MUIA_Text_Contents, ObjectApp->STR_TX_Prg_Name,
  42.         MUIA_Text_SetMin, TRUE,
  43.     End;
  44.  
  45.     Space_1 = HVSpace;
  46.  
  47.     ObjectApp->CH_Generate_Main_File = KeyCheckMark(TRUE, 'm');
  48.  
  49.     obj_aux1 = KeyLabel2("Generate Main File", 'm');
  50.  
  51.     obj_aux0 = GroupObject,
  52.         MUIA_Group_Columns, 2,
  53.         Child, obj_aux1,
  54.         Child, ObjectApp->CH_Generate_Main_File,
  55.     End;
  56.  
  57.     Space_2 = HVSpace;
  58.  
  59.     GR_Main = GroupObject,
  60.         MUIA_Group_Horiz, TRUE,
  61.         Child, Space_1,
  62.         Child, obj_aux0,
  63.         Child, Space_2,
  64.     End;
  65.  
  66.     Space_3 = HVSpace;
  67.  
  68.     ObjectApp->CH_Add_new_entries_in_Catalog_Description_File = KeyCheckMark(FALSE, 'm');
  69.  
  70.     obj_aux3 = KeyLabel2("Add new entries in Catalog Description File", 'm');
  71.  
  72.     obj_aux2 = GroupObject,
  73.         MUIA_Group_Columns, 2,
  74.         Child, obj_aux3,
  75.         Child, ObjectApp->CH_Add_new_entries_in_Catalog_Description_File,
  76.     End;
  77.  
  78.     Space_4 = HVSpace;
  79.  
  80.     ObjectApp->GR_Catalog = GroupObject,
  81.         MUIA_Group_Horiz, TRUE,
  82.         Child, Space_3,
  83.         Child, obj_aux2,
  84.         Child, Space_4,
  85.     End;
  86.  
  87.     GR_Option = GroupObject,
  88.         Child, GR_Main,
  89.         Child, ObjectApp->GR_Catalog,
  90.     End;
  91.  
  92.     ObjectApp->GR_H_Header = GroupObject,
  93.     End;
  94.  
  95.     ObjectApp->GR_C_Header = GroupObject,
  96.     End;
  97.  
  98.     ObjectApp->GR_Main_Header = GroupObject,
  99.     End;
  100.  
  101.     GR_Register = RegisterObject,
  102.         MUIA_Register_Titles, ObjectApp->STR_GR_Register,
  103.         MUIA_Frame, MUIV_Frame_Group,
  104.         Child, ObjectApp->GR_H_Header,
  105.         Child, ObjectApp->GR_C_Header,
  106.         Child, ObjectApp->GR_Main_Header,
  107.     End;
  108.  
  109.     ObjectApp->BT_Generate = TextObject,
  110.         ButtonFrame,
  111.         MUIA_Background, MUII_ButtonBack,
  112.         MUIA_ControlChar, 'g',
  113.         MUIA_Text_Contents, "Generate",
  114.         MUIA_Text_PreParse, "\033c",
  115.         MUIA_Text_HiChar, 'g',
  116.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  117.     End;
  118.  
  119.     ObjectApp->BT_Save_Local = SimpleButton("Save _Local");
  120.  
  121.     ObjectApp->BT_Save_Global = SimpleButton("Save Gl_obal");
  122.  
  123.     GR_Buttons = GroupObject,
  124.         MUIA_Group_Horiz, TRUE,
  125.         MUIA_Group_SameWidth, TRUE,
  126.         Child, ObjectApp->BT_Generate,
  127.         Child, ObjectApp->BT_Save_Local,
  128.         Child, ObjectApp->BT_Save_Global,
  129.     End;
  130.  
  131.     GROUP_ROOT_0 = GroupObject,
  132.         Child, ObjectApp->TX_Prg_Name,
  133.         Child, GR_Option,
  134.         Child, GR_Register,
  135.         Child, GR_Buttons,
  136.     End;
  137.  
  138.     ObjectApp->WI_C_Generation = WindowObject,
  139.         MUIA_Window_Title, "GenCodeC by Billault © 1995-1997",
  140.         MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
  141.         WindowContents, GROUP_ROOT_0,
  142.     End;
  143.  
  144.     ObjectApp->App = ApplicationObject,
  145.         MUIA_Application_Author, "Billault",
  146.         MUIA_Application_Base, "C_Generation",
  147.         MUIA_Application_Title, "GenCodeC",
  148.         MUIA_Application_Version, "$VER: GenCodeC 2.2e (03.03.97)",
  149.         MUIA_Application_Copyright, "Billault",
  150.         MUIA_Application_Description, "GenCodeC for MUIBuilder",
  151.         MUIA_Application_HelpFile, "GenCodeC.guide",
  152.         SubWindow, ObjectApp->WI_C_Generation,
  153.     End;
  154.  
  155.  
  156.     if (!ObjectApp->App)
  157.     {
  158.         FreeVec(ObjectApp);
  159.         return(NULL);
  160.     }
  161.  
  162.     DoMethod(ObjectApp->WI_C_Generation,
  163.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  164.         ObjectApp->App,
  165.         2,
  166.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  167.         );
  168.  
  169.     DoMethod(ObjectApp->CH_Generate_Main_File,
  170.         MUIM_Notify, MUIA_Selected, TRUE,
  171.         ObjectApp->GR_Main_Header,
  172.         3,
  173.         MUIM_Set, MUIA_Disabled, FALSE
  174.         );
  175.  
  176.     DoMethod(ObjectApp->CH_Generate_Main_File,
  177.         MUIM_Notify, MUIA_Selected, FALSE,
  178.         ObjectApp->GR_Main_Header,
  179.         3,
  180.         MUIM_Set, MUIA_Disabled, TRUE
  181.         );
  182.  
  183.     DoMethod(ObjectApp->BT_Generate,
  184.         MUIM_Notify, MUIA_Pressed, FALSE,
  185.         ObjectApp->App,
  186.         2,
  187.         MUIM_Application_ReturnID, ID_BT_GENERATE
  188.         );
  189.  
  190.     DoMethod(ObjectApp->BT_Generate,
  191.         MUIM_Notify, MUIA_Pressed, FALSE,
  192.         ObjectApp->App,
  193.         2,
  194.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  195.         );
  196.  
  197.     DoMethod(ObjectApp->BT_Save_Local,
  198.         MUIM_Notify, MUIA_Pressed, TRUE,
  199.         ObjectApp->App,
  200.         2,
  201.         MUIM_Application_ReturnID, ID_BT_SAVE_LOCAL
  202.         );
  203.  
  204.     DoMethod(ObjectApp->BT_Save_Global,
  205.         MUIM_Notify, MUIA_Pressed, TRUE,
  206.         ObjectApp->App,
  207.         2,
  208.         MUIM_Application_ReturnID, ID_BT_SAVE_GLOBAL
  209.         );
  210.  
  211.     DoMethod(ObjectApp->WI_C_Generation,
  212.         MUIM_Window_SetCycleChain, ObjectApp->CH_Generate_Main_File,
  213.         ObjectApp->GR_Catalog,
  214.         ObjectApp->CH_Add_new_entries_in_Catalog_Description_File,
  215.         ObjectApp->GR_H_Header,
  216.         ObjectApp->GR_C_Header,
  217.         ObjectApp->GR_Main_Header,
  218.         ObjectApp->BT_Generate,
  219.         ObjectApp->BT_Save_Local,
  220.         ObjectApp->BT_Save_Global,
  221.         0
  222.         );
  223.  
  224.  
  225.     return(ObjectApp);
  226. }
  227.  
  228. void DisposeApp(struct ObjApp * ObjectApp)
  229. {
  230.     MUI_DisposeObject(ObjectApp->App);
  231.     FreeVec(ObjectApp);
  232. }
  233.